public class operatef {
    public static void main(String[] args) {

    }
    public static void main12(String[] args) {
        //位运算符
        //在两边都是布尔表达式的时候，会展现出所谓的逻辑或和逻辑与的功能（没有短路计算，两边都会计算）
        System.out.println(10<20 | 10>0);
        System.out.println(10>20 & 10>0);
//        System.out.println(Integer.MAX_VALUE);
        System.out.println(-2147483647<<1);
    }


    public static void main11(String[] args) {
        //逻辑运算符(结果为true或false)
        int a = 1;
        int b = 2;
        System.out.println(!(a==1));//a==1为true 取个非就是false
        System.out.println(!(a !=1));//a!=1为false 取个非就是true
        System.out.println(a<5 && b<6);
        System.out.println(a > 5 && a/0 != 0);//短路与
//        System.out.println(a < 5 && a/0 != 0);//编译报错
        System.out.println(a < 5 || a/0 != 0);//短路或
//        System.out.println(a > 5 || a/0 != 0);//编译报错

    }
    public static void main10(String[] args) {
        //关系运算符主要有六个 == ！= > < <= >= 其计算结果是true和false(boolean)
        int a = 10;
        int b = 20;
        //注意 在java中 = 表示赋值，要与数学含义区分
        // 在 Java中 == 表示相等
        System.out.println(a == b);//false
        System.out.println(a != b);//ture
        System.out.println(a < b);//true
        System.out.println(a > b);//false
        System.out.println(a <= b);//true
        System.out.println(a >= b);//false
    }
    public static void main9(String[] args) {
        int a = 10;
        a = a++;
        int b = 10;
        b = ++b;
        System.out.println(a);//10
        System.out.println(b);//12
    }
    public static void main8(String[] args) {
        int a = 10;
        int b = ++a;//a = a+1;b = a
        int c = a++;// c = a;a = a+1
        System.out.println(b);//11
        System.out.println(a);//12
        System.out.println(c);//11
    }
    public static void main7(String[] args) {
        //自增/自减运算符
        int a = 10;
        a = a+1;
        a += 1;
        System.out.println(a);
        double d = 12.5;
        a =(int)(a + d);
        a += d;//它是可以自动帮我们进行类型的转换的
        System.out.println(a);
    }

    public static void main6(String[] args) {
        //增量运算符
        int a = 1;
        a += 2;
        System.out.println(a);//3
        a -= 1;
        System.out.println(a);//2
        a *= 3;
        System.out.println(a);//6
        a /= 3;
        System.out.println(a);//2
        a %= 3;
        System.out.println(a);//2
        //注意只有变量才可以使用该运算符，常量不能使用
    }

    public static void main5(String[] args) {
        int a = 1;
        int b = 0;
        //做除法和取模时，右操作数不能为0
//        System.out.println(a/b);
//        System.out.println(a%b);
        //两侧操作数类型不一致时，向类型大的提升
        //左侧为int右侧为double，再加之前int被提升为double
        System.out.println(1+0.2);//1.2
    }

    public static void main4(String[] args){
        System.out.println(10%3); //1
        System.out.println(-10%3);//-1
        System.out.println(10%-3);//1
        System.out.println(-10%-3);//-1
        System.out.println(100%-3);//1
        //java中浮点数也可以进行取模计算
        System.out.println(12.5%10.5);//2.0
        System.out.println(-11%10.5);//-0.5
    }

    public static void main3(String[] args){
        System.out.println(5/2);//2
        System.out.println(5.0/2);//2.5
        System.out.println(5/2.0);//2.5
        System.out.println((float)5/2);//2.5
        System.out.println(5/(float)2);//2.5
        System.out.println((float)(5/2));//2.0
    }

    public static void main2(String[] args) {
        int a = 3;
        int b = 2;
        //在数学中应该是1.5，但是在java中输出结果为1，会向下取整，即小数点之后全都舍弃掉了
        System.out.println(a/b);
        //如果要得到数学中的结果，可以使用如下方式
        double d = a*1.0/b;
        System.out.println(d);
        double d2 = (double)a/b;
        System.out.println(d2);
    }


    public static void main1(String[] args) {
        //四则运算
        int a = 10;
        int b = 20;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);
        System.out.println(a%b);//--->模运算相当于数学中除法的余数
    }
}
